AWS Transfer Familyの入門チュートリアルをやってみた
こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。
今回は、AWS Transfer Familyの入門チュートリアルをやってみて、どのような構成要素か図解してみようと思います。
まとめ
1枚絵にすると、次の図のリソースを作成しています。
マネジメントコンソールで自動的に作られているリソースもあるため、手順に記載がないリソースも表記しています。
チュートリアルやってみた
では、どのタイミングでどのリソースが作られるのか確認してみようと思います。
ステップ1は、マネジメントコンソールへのログイン手順のため省略します。
ステップ2
ステップ2では、SFTPサーバーとIAMロールの作成を行います。
手順に従い作成すると次の図のリソースが作成されます。
「ログを送るためのロール」として、作成されたIAMロールを確認してみます。
自動で作成したため「AWSTransferLoggingAccess」といった名前で作成されています。ポリシーにはAWS管理ポリシーの「AWSTransferLoggingAccess」がアタッチされていました。
より詳しい詳細は以下ドキュメントに記載されていました。
ステップ3
ステップ3では、SFTPサーバーへアクセス可能なユーザーを作成します。
ロールの作成
作成するユーザーがS3にアクセスするために利用するIAMロールとIAMポリシーを作成する必要があります。
今回は次のドキュメントを参考にIAMポリシーを作成してみました。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::*/*" } ] }
構成図
SSHキーの作成
今回、SFTPプロトコルを使用してTransfer Familyと通信するため、SSHキーを作成します。
ssh-keygen
コマンドを利用して、SSHキーペアを作成しました。
takakuni% ssh-keygen -t rsa -b 4096 -N "" -f transfer_tutorial Generating public/private rsa key pair. Your identification has been saved in transfer_tutorial Your public key has been saved in transfer_tutorial.pub The key fingerprint is: SHA256:Gf32lItve2epdtEKyhjBHLg9poppse+Dg9RcfLUNQ48 takakuni The key's randomart image is: +---[RSA 4096]----+ | ... | | . .=o | | . =oE*. | | o..B+ o . | | o . .oSo o o .| | ..o . . ..+ o.| |.. * . + ...o.o| |. B o . o ooo+| | . +o. .o=+.| +----[SHA256]-----+
構成図
S3バケットの作成
転送先のS3バケットを作成しておきます。
今回は、「takakuni-trasnfer-tutorial」といった名前で作成してみました。
構成図
ユーザーの作成
ステップ3の前段階で作成した、IAMリソース、SSHキー、S3バケットを利用してユーザーの作成を行います。
ホームディレクトリは空白で今回は設定しました。
ステップ4
今回は「Cyberduck」を利用してファイル転送を行なってみようと思います。
Cyberduckを開き、「Open Connection」からSFTPサーバー/ユーザーへの認証情報を入力します。
ログインに成功すると、S3を操作可能になります。今回は「key.png」をアップロードしてみました。
また、初回ファイルアップロード等を行うとCloudWatch Logsロググループが作成されます。
構成図
S3を確認すると、「key.png」が転送されていることが確認できました。
まとめ
以上、「AWS Transfer Familyの入門チュートリアルをやってみた」でした。構成要素が少し多く(特にロールの使い道等)、図解してみようと思ったのがブログのきっかけでした!
この記事がどなたかの参考になれば幸いです。
以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!